---
title: 模块化设计
description: Spring 功能特性如何在不同的模块中组织？
---

## Spring 模块化设计（Modular）

Spring 的模块化设计和 Java 9 的模块化设计不是完全对等的，不过 Spring 的模块化确实可以运用到 Java 9 的模块化里面去。因为 Spring 在某个版本开始，它将它的模块划分为更细粒度的一些 JAR 包。

这些 Jar 包可以运用按需分配的方式来依次的依赖，比如它有核心模块叫 spring-core或者 spring JDBC 或者 Spring Context这些模块，大概有将近 20 个模块。

![image-20230530221404452](https://img.wkq.pub/img/image-20230530221404452.png)

这些模块都是可以单独使用的，比如你只需要使用 Spring JDBC，那么你只需要引入 Spring JDBC 这个模块就可以了，不需要引入其他的模块。

在最早的时候，它是把 Spring 的所有的东西集成在一起，然后你引入一个 Spring 的 JAR 包，它就包含了所有的功能，但是这样的话，你可能会引入一些你不需要的功能，这样的话，你的应用程序就会变得很臃肿。

所以后来 Spring 就把它的功能模块化了，这样的话，你就可以按需引入你需要的模块，这样的话，你的应用程序就会变得更加的轻量级。

## Spring 对 Java 语法的实现

![image-20230531230002564](https://img.wkq.pub/img/image-20230531230002564.png)
